package com.ip.user.mapper;

import com.ip.user.models.vo.SysUserGroupVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户组Mapper接口
 */
@Mapper
public interface SysUserGroupMapper {
    
    /**
     * 插入用户组
     * @param userGroupVO 用户组VO对象
     * @return 影响行数
     */
    int insertUserGroup(SysUserGroupVO userGroupVO);
    
    /**
     * 根据ID查询用户组
     * @param groupId 用户组ID
     * @return 用户组VO对象
     */
    SysUserGroupVO selectUserGroupById(Integer groupId);
    
    /**
     * 根据用户组名称查询用户组
     * @param groupName 用户组名称
     * @return 用户组VO对象
     */
    SysUserGroupVO selectUserGroupByName(String groupName);
    
    /**
     * 查询所有用户组
     * @return 用户组VO列表
     */
    List<SysUserGroupVO> selectAllUserGroups();
    
    /**
     * 查询用户所属的所有用户组
     * @param userId 用户ID
     * @return 用户组VO列表
     */
    List<SysUserGroupVO> selectUserGroupsByUserId(Integer userId);
    
    /**
     * 更新用户组信息
     * @param userGroupVO 用户组VO对象
     * @return 影响行数
     */
    int updateUserGroup(SysUserGroupVO userGroupVO);
    
    /**
     * 删除用户组
     * @param groupId 用户组ID
     * @return 影响行数
     */
    int deleteUserGroup(Integer groupId);
    
    /**
     * 查询默认用户组
     * @return 默认用户组VO对象
     */
    SysUserGroupVO selectDefaultUserGroup();
}